package com.mz.mattress.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mz.mattress.admin.api.req.DeviceQueryReq;
import com.mz.mattress.admin.api.resp.DeviceSum;
import com.mz.mattress.admin.api.resp.SaveDeviceResp;
import com.mz.mattress.api.common.Result;
import com.mz.mattress.api.entity.Device;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

public interface DeviceService {

    //支持换行符，逗号分隔
//    String TXT_SPLIT = "\n|\r\n|,|，";

    String PRODUCT_KEY = "0105121477193614";

    Result<IPage<Device>> listPage(DeviceQueryReq req);

    //商家销售端显示
    Result<IPage<Device>> listPageMerchant(DeviceQueryReq req);

    /**
     * 商家设备列表
     * @param merchantId
     * @return
     */
    Result<List<Device>> list(Integer merchantId);

    Result<Device> getById(Serializable id);

    Result add(Device device);

    Result<SaveDeviceResp> save(String content);

    /**
     * 管理员 来绑定 商家 和 设备
     * @param merchantId 平台商家ID=0  可绑定平台商家
     * @param deviceCode
     * @return
     */
    Result bind(Integer merchantId, String deviceCode);

    /**
     * 解绑设备
     * @param id
     * @return
     */
    Result unbind(Integer id);

    Result updateStatus(Integer id, Integer status);

    Result updateById(Device device);

    Result deleteByIds(Set<Integer> ids);

    /**
     * 设备统计
     * @param typeId
     * @param memberMerId
     * @return
     */
    Result<DeviceSum> deviceSum(Integer typeId, Long memberMerId);

    Result genDeviceName();

}
